/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ManagedBeans;

import Entidades.Categoria;
import Entidades.Producto;
import Utilidades.Utilidades;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;

/**
 *
 * @author Sergio
 */
@ManagedBean
@SessionScoped
public class mbBuscarProductos {

    private String nombre = "";
    private String precio = "";
    private String categorias = "";
    private int prodId = 0;
    private String ultimaRuta;

    public mbBuscarProductos() {
    }

    public int getProdId() {
        return prodId;
    }

    public void setProdId(int prodId) {
        this.prodId = prodId;
    }

    public String getUltimaRuta() {
        return ultimaRuta;
    }

    public void setUltimaRuta(String ultimaRuta) {
        this.ultimaRuta = ultimaRuta;
    }

    public String getCategorias() {
        return categorias;
    }

    public void setCategorias(String categorias) {
        this.categorias = categorias;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void recogerDatos() {
        Utilidades.getPedidosDAO().getPedidoNombre(nombre);
    }

    public List<SelectItem> todosItems() {
        ArrayList<SelectItem> lista = new ArrayList<SelectItem>();
        lista.add(new SelectItem(0, "Todas"));
        for (Categoria c : Utilidades.getCategoriasDAO().getCategorias()) {
            lista.add(new SelectItem(c.getId(), c.getNombre()));
        }
        return lista;
    }

    public List<Producto> buscarProductos() {
        String where = "";
        double p;
        try {
            p = Double.parseDouble(getPrecio());
        } catch (Exception e) {
            p = 0;
        }
        int c;
        try {
            c = Integer.parseInt(getCategorias());
        } catch (Exception e) {
            c = 0;
        }

        if (!this.nombre.equals("")) {
            where += " AND lower(p.nombre) LIKE '%" + this.nombre.toLowerCase() + "%'";
        }
        if (p > 0) {
            where += " AND p.precio<=" + p;
        }
        if (c > 0) {
            where += " AND p.categoria.id=" + c;
        }

        where = where.isEmpty() ? null : where.substring(4);
        return Utilidades.getProductosDAO().getProductos(where);

    }

    /**
     * @return the precio
     */
    public String getPrecio() {
        return precio;
    }

    /**
     * @param precio the precio to set
     */
    public void setPrecio(String precio) {
        this.precio = precio;
    }

    public List<Producto> getTodosLosProductos() {
        return buscarProductos();
    }
}
